home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor2 / polyfit.doc < prev    next >
Text File  |  1995-03-31  |  3KB  |  78 lines

  1. Polyfit v1.0: produce polynomial given N data points 
  2. From: dfk@hp-lsd.cos.hp.com (David F. Kurth) 
  3. Newsgroups: comp.sources.hp48 
  4. Date: 12 Aug 91 01:49:19 GMT 
  5.  
  6. I've always thought there should be a good use for a program like this, 
  7. but I still haven't found it.  It was a good challenge to program the 
  8. algorithm, and maybe someone else can find a good use for it. 
  9.  
  10. POLYFIT produces the coefficients of an N-1 degree polynomial given 
  11. N data points that lie on the curve of that polynomial. 
  12. For example, consider the following table of data points: 
  13.  
  14.    X     Y 
  15. ----------- 
  16.   -2     1 
  17.   -1    -1 
  18.    0     1 
  19.    1    -1 
  20.    2     1 
  21.  
  22. There are 5 data points, and the Y value a very symmetric.  POLYFIT 
  23. produces the following polynomial: 
  24.  
  25.   f(x) = 2/3*x^4 + 0*x^3 - 8/3*x^2 + 0*x^1 + 1*x^0 
  26.  
  27. If you plot this with an X range between -2 and 2, you will see the 
  28. curve "oscillate" between +1 and -1 as it hits all five data points. 
  29.  
  30. POLYFIT is not a least square's type curve fit program.  There is no 
  31. minimization of errors.  The polynomial coefficients found by POLYFIT 
  32. will exactly hit the given data points (to within the accuracy of the  
  33. calculator). 
  34.  
  35. [Note: If you want a least-squares polyfit, see LEASTSQ on this disk. 
  36. -jkh-] 
  37.  
  38. Using POLYFIT 
  39. ------------- 
  40. Enter the following code into your calculator.  After loading, enter 
  41. the new directory if not already there.  Push the CST key load the 
  42. custom menu which should reveal the following keys: 
  43.  
  44.   POLY - Executes the main program which takes the input array 
  45.          of X-Y points from the stack and produces the K array of  
  46.          polymonial coefficients. 
  47.   VEIW - Displays the coefficients of the resulting polynomial. 
  48.   FX   - Calculates f(x) using level 1 of the stack for x. 
  49.   X-Y  - Recalls the input data points to the stack for editing 
  50.          or viewing. 
  51.  
  52. To begin, you must first enter the input data points array.  This 
  53. is easiest to do by using the Matrix Writer (Right-shift ENTER). 
  54. Enter your first X-Y pair of points, then push the down arrow 
  55. which informs the calculator that the array is only 2 elements wide. 
  56. Continue entering the rest of your points until done.  Then just 
  57. push ENTER to return the array to the stack.  Now push POLY to 
  58. calculate the coefficients. 
  59.  
  60. The display should produce "DOING L:" which can be ignored (the 
  61. program calculates a triangular array of difference values used 
  62. for the rest of the computations).  After this, the Ki coefficient 
  63. values are calculated and briefly displayed. 
  64.  
  65. When done, the K values can be displayed again by using the VIEW 
  66. key.  Output values can be calculated by entering an X value on 
  67. the stack and pressing the FX key.  Plotting the equation can 
  68. be done by pressing Left-shift PLOT, PLOTR, and then AUTO. 
  69.  
  70. For a small number of data points, the calculations are fairly 
  71. quick.  For each additional data point entered, calculation time 
  72. roughly doubles.  I've calculated 15 data points, but it took the 
  73. calculator about 7.5 hours to finish.  However, with sufficient 
  74. memory and batteries, have at it. 
  75.  
  76. Dave Kurth 
  77. dfk@hp-lsd.cos.hp.com 
  78.